package org.example.domain.strategy.model.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.example.domain.strategy.model.valobj.RuleLogicCheckTypeVO;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RuleActionEntity<T extends RuleActionEntity.RaffleEntity>  {

    private String code = RuleLogicCheckTypeVO.ALLOW.getCode();

    private String info = RuleLogicCheckTypeVO.ALLOW.getInfo();

    private String ruleModel;

    private T data;

   static public class  RaffleEntity{

   }
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
   static public class RaffleBeforeEntity extends RaffleEntity{

       private Long strategyId;

       private String ruleWeightValueKey;

       private Integer awardId;
   }

   static public class RaffleCenterEntity extends RaffleEntity{

   }
   static public class RaffleAfterEntity extends RaffleEntity{

   }
}
